import { defineStore } from 'pinia'
import { loginApi } from '@/api/user'
import { getToken, removeToken, setToken } from '@/utils/token'


export const useUserStore = defineStore('user', {
  state: () => ({
    token: getToken() || '',
    userInfo: {}
  }),
  actions: {
    // 设置 token 在 pinia 和本地
    setToken(token) {
      this.token = token
      setToken(token)
    },
    // 移除token
    removeToken() {
      this.token = ''
      // 移除本地
      removeToken()
    },
    // 用户登录
    async userLogin(loginUserForm) {
      const data = await loginApi(loginUserForm)
      return data
    },
    // 用户登出
    async userLogout() {
      // 设置 pinia 为空
      this.token = ''
      this.userInfo = {}
      // 移除token
      removeToken()
    }
  }
})